home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Technotools
/
Technotools (Chestnut CD-ROM)(1993).ISO
/
os2tools
/
os2life
/
int33h.asm
< prev
next >
Wrap
Assembly Source File
|
1988-02-29
|
1KB
|
50 lines
;*** _int33h - simple program to call the mouse interput hex 33
;*
;* Passed in [bp+4] is the offset in ds of a six word
;* array containing the data to place in ax,bx,cx, and
;* dx for the int 33h. An int 33h is then called
;* and ax,bx,cx and dx are returned in the same array.
;* To call from C, store the registers you wish to pass
;* in a near array and call like this:
;*
;* int33h (®isters);
;*
;* Created by Microsoft Corp. 1987
;
_TEXT SEGMENT BYTE PUBLIC 'CODE'
_TEXT ENDS
_DATA SEGMENT WORD PUBLIC 'DATA'
_DATA ENDS
CONST SEGMENT WORD PUBLIC 'CONST'
CONST ENDS
_BSS SEGMENT WORD PUBLIC 'BSS'
_BSS ENDS
DGROUP GROUP CONST, _BSS, _DATA
ASSUME CS: _TEXT, DS: DGROUP, SS: DGROUP, ES: DGROUP
_TEXT SEGMENT
PUBLIC _int33h
_int33h PROC NEAR
push bp
mov bp,sp
push di
push si
mov si,WORD PTR [bp+4] ; (ds:si) = array of passed registers
mov ax,[si] ; load registers for int
mov bx,[si+2]
mov cx,[si+4]
mov dx,[si+6]
int 33h
mov [si],ax ; load in returned registers
mov [si+2],bx
mov [si+4],cx
mov [si+6],dx
pop si
pop di
mov sp,bp ; exit
pop bp
ret
_int33h ENDP
_TEXT ENDS
END